package array;

import java.util.Arrays;

/**
 * 移除数组中的指定元素，超出新数组的元素长度后面的数据不用管，返回新数组的长度
 * （直接计算不是更简单？？先计算出有多少个目标元素，然后总长度-该长度）
 * @author liumingju
 * @date 2025/3/10 19:18
 */
public class 移除数组元素 {

    public static void main(String[] args) {
        int[] arr = {1,2,3,5,7,9,10,2,10};
        System.out.println(remove(arr, 10));
        System.out.println(Arrays.toString(arr));

    }

    /**
     * 返回去除元素后数组的长度，且超出数组长度的元素不需要管，即使是要删除的元素
     * @param arr
     * @param val
     * @return
     */
    public static int remove(int arr[],int val){
        // 快慢指针
        int slow = 0;
        for(int fast = 0;fast<arr.length;fast++){
            if(val!=arr[fast]){
                arr[slow] = arr[fast];
                slow++;
            }
        }
        return slow;
    }
}
